package model.building;

import model.City;
import model.util.Object3D;
import model.util.Vector3D;
import model.util.Box3D;
import model.*;

public class HauntedHouse extends House {

    /** Constructeurs */
    public HauntedHouse(City city, Vector3D position) {
        this(city, new Box3D(m_shape, position), new Activity(m_defaultActivity));
    }

    public HauntedHouse(City city, Object3D object3d, Activity activity) { super(city, object3d, activity); }

    /** Accesseurs */
    public String getName() { return "Haunted House"; }
    public Object3D.Shape3D getShape3D() { return getShape(); }
    public double getBaseDestructionCost() { return 150.0; }
    public double getMaintainCost() { return 0.0; }

    /** Variables de classe */
    private static final Box3D.Shape3D m_shape = new Box3D.Shape3D(new Vector3D(72.0, 97.0, 2.0));
    private static final Activity m_defaultActivity = new Activity(10);

    /** Methodes de classe */
    public static Box3D.Shape3D getShape() { return m_shape; }
    public static double getConstructionCost() { return 250.0; }
    public static Activity getDefaultActivity() { return m_defaultActivity; }

    /** Classes interne */
    public static class Activity extends House.Activity {
        
        /** Constructeurs */
        public Activity(int population) { super(population); }

        public Activity(Activity a) { super(a); }

        /** Methodes */
        public Ressources getImpact(double deltaTps, Ressources economy) {
            Ressources r = new Ressources();
            r.remove(Ressources.Type.PERSONS,2);
            return r;
        }
    }


}
